/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package model;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author ivanhoe
 */
@Entity
@Table(name = "accesos")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Accesos.findAll", query = "SELECT a FROM Accesos a"),
    @NamedQuery(name = "Accesos.findByIdAcceso", query = "SELECT a FROM Accesos a WHERE a.idAcceso = :idAcceso"),
    @NamedQuery(name = "Accesos.findByFechaAcceso", query = "SELECT a FROM Accesos a WHERE a.fechaAcceso = :fechaAcceso"),
    @NamedQuery(name = "Accesos.findByIpAcceso", query = "SELECT a FROM Accesos a WHERE a.ipAcceso = :ipAcceso"),
    @NamedQuery(name = "Accesos.findByAccesoIdSession", query = "SELECT a FROM Accesos a WHERE a.accesoIdSession = :accesoIdSession")})
public class Accesos implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "id_acceso")
    private Integer idAcceso;
    @Column(name = "fecha_acceso")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaAcceso;
    @Size(max = 45)
    @Column(name = "ip_acceso")
    private String ipAcceso;
    @Size(max = 45)
    @Column(name = "acceso_id_session")
    private String accesoIdSession;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "accesosIdAcceso")
    private Collection<DetalleAccesos> detalleAccesosCollection;
    @JoinColumn(name = "roles_id_rol", referencedColumnName = "id_rol")
    @ManyToOne(optional = false)
    private Roles rolesIdRol;
    @JoinColumn(name = "usuarios_id_usuarios", referencedColumnName = "id_usuarios")
    @ManyToOne(optional = false)
    private Usuarios usuariosIdUsuarios;

    public Accesos() {
    }

    public Accesos(Integer idAcceso) {
        this.idAcceso = idAcceso;
    }

    public Integer getIdAcceso() {
        return idAcceso;
    }

    public void setIdAcceso(Integer idAcceso) {
        this.idAcceso = idAcceso;
    }

    public Date getFechaAcceso() {
        return fechaAcceso;
    }

    public void setFechaAcceso(Date fechaAcceso) {
        this.fechaAcceso = fechaAcceso;
    }

    public String getIpAcceso() {
        return ipAcceso;
    }

    public void setIpAcceso(String ipAcceso) {
        this.ipAcceso = ipAcceso;
    }

    public String getAccesoIdSession() {
        return accesoIdSession;
    }

    public void setAccesoIdSession(String accesoIdSession) {
        this.accesoIdSession = accesoIdSession;
    }

    @XmlTransient
    public Collection<DetalleAccesos> getDetalleAccesosCollection() {
        return detalleAccesosCollection;
    }

    public void setDetalleAccesosCollection(Collection<DetalleAccesos> detalleAccesosCollection) {
        this.detalleAccesosCollection = detalleAccesosCollection;
    }

    public Roles getRolesIdRol() {
        return rolesIdRol;
    }

    public void setRolesIdRol(Roles rolesIdRol) {
        this.rolesIdRol = rolesIdRol;
    }

    public Usuarios getUsuariosIdUsuarios() {
        return usuariosIdUsuarios;
    }

    public void setUsuariosIdUsuarios(Usuarios usuariosIdUsuarios) {
        this.usuariosIdUsuarios = usuariosIdUsuarios;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idAcceso != null ? idAcceso.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Accesos)) {
            return false;
        }
        Accesos other = (Accesos) object;
        if ((this.idAcceso == null && other.idAcceso != null) || (this.idAcceso != null && !this.idAcceso.equals(other.idAcceso))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "model.Accesos[ idAcceso=" + idAcceso + " ]";
    }
    
}
